#ifndef _YANGP01_RB_TREE
#define _YANGP01_RB_TREE
typedef struct avl_node {
	int data;

	struct avl_node *parent;
	int left_len;
	struct avl_node *avl_left;
	int right_len;
	struct avl_node *avl_right;
} avl_node_t;

typedef struct {
	avl_node_t *node;
} avl_root_t;


void avl_insert_adjust(avl_node_t *, avl_root_t *);
void avl_link_node(avl_node_t *, avl_node_t *, avl_node_t **);
avl_node_t *avl_first(avl_root_t *);
avl_node_t *avl_next(avl_node_t *);
//void avl_erase(avl_node_t *, avl_root_t *);

#endif
